package oop.controller.action.testversion;

import java.sql.SQLException;
import java.util.List;

import org.apache.commons.lang.StringUtils;

import oop.controller.action.DefaultAction;
import oop.data.Test;
import oop.data.TestVersion;
import oop.db.dao.TestDAO;
import oop.db.dao.TestVersionDAO;

public class ListTestVersionAction extends DefaultAction {

	@Override
	public void performImpl() throws Exception {

		String submit = request.getParameter("tl_submit");
		if ("delete".equals(submit)) {
			try {
				String[] items = request.getParameterValues("tl_testversions");
				int count = 0;
				for (String item : items) {
					long id = Long.parseLong(item);
					count += TestVersionDAO.drop(id);
				}
				message("Đã xóa " + count + " mã đề.");
			} catch (NumberFormatException ex) {
				error("ID không hợp lệ.");
			} catch (SQLException ex) {
				if (ex.getErrorCode() == 1451) {
					error("Không thể xóa mã đề này");
				} else {
					throw ex;
				}
			}
		}else if ("create".equals(submit)){
			String testId = request.getParameter("testid");
			String code = request.getParameter("code");
			setNextAction("testversion.create&testid=" + testId + "&verCode=" +code);
		}
		
		String testIdStr = request.getParameter("testid");
		if (StringUtils.isEmpty(testIdStr)) {
			error("Thiếu mã đề!");
			return;
		}
		long testId = Long.parseLong(testIdStr);
		
		List<TestVersion> testVersions = TestVersionDAO.fetchByTest(testId);
		
		request.setAttribute("testVersions", testVersions);
		
		Test test = TestDAO.fetchById(testId);
		title("Danh sách các phiên bản của đề "+test.getName());
		request.setAttribute("test", test);
	}
}
